'''
字典：dict  {}
1)字典的每个元素都是一个键值对 key value
2)无序，key不能重复
3)是可变的序列
4）key必须是唯一的，value可以重复
'''
# 新建字典 方法1
a1 = [['name','tom'],['age',34],['sex','女']]
a2 = [('name','tom'),('age',34),('sex','女')]
a3 = (['name','tom'],['age',34],['sex','女'])
a4 = (('name','tom'),('age',34),('sex','女'))
a = dict(a1) # 强转为字典
print(type(a))
print(a)

#方法2
b = dict(语文 = 56,数学 = 89,英语 = 45)
print(b)

# 方法3
c = {'语文': 56, 3: 89, '英语': 45}
print(c)

# 空字典
d = {}
d1 = dict()
print(type(d))
print(type(d1))

# 增
b['化学'] = 45
b['化学'] = 67 # 修改 如果有改key值，则相当于是修改
print(b)

# 删
del b['化学']
print(b)

f = b.pop("英语") # 返回改key对应的value
print(b)
print(f)
b.clear() #清空
print(b)

# 查询 根据key获取value
'''
e[key]和get(key)的区别
如果不存在该key,get(key)不报错,但是e[key]报错
'''
e = dict(语文 = 56,数学 = 89,英语 = 56)
value = e['语文']
print(value)
value1 = e.get("语文")
print(value1)

# 获取所有的keys
g = e.keys()
print(list(g))

# 获取所有values
k = e.values()
print(list(k))

# 获取所有的键值对
q = e.items()
print(q)

# 遍历
for k in e: #直接遍历字典对象，k代表key
    print(f"{k}--》{e.get(k)}")

for v in e.values():
    print(v)

for k,v in e.items():
    print(f"{k}-->{v}")

for key in e.keys():
    print(f"{key}--》{e.get(key)}")

# 获取一个字典 key 为1-10  value 1-100的2次方
dict1= {}
for i in range(1,11):
    dict1[i] = i*i

print(dict1)
# key 学号 value 姓名  张三--》key
dict2 = {1:"张三",2:"lisi",3:"lily",4:"lucy",5:"张三"}
ids= []
# 遍历
for k,v in dict2.items():
    # 获取value 判断是不是张三
    # if v == "张三":
    if v.startswith("张"):
        ids.append(k)

print(ids)







